{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pyinat/pyinaturalist/main?filepath=examples%2FData%2520Visualizations%2520-%2520Matplotlib.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Matplotlib example\n", "Here is an example of making a simple seasonality chart using [matplotlib](https://matplotlib.org/).\n", "\n", "This shows observations counts by month (all years) for monarch butterflies observed in the state of Iowa." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "from pyinaturalist import iNatClient\n", "\n", "client = iNatClient()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2195\n", " observed_on observed_month\n", "0 2013-05-28 00:00:00 5.0\n", "1 2009-08-01 00:00:00 8.0\n", "2 2015-07-04 12:53:15-05:00 7.0\n", "3 2015-08-19 14:04:39-05:00 8.0\n", "4 2016-08-10 19:39:30-05:00 8.0\n" ] } ], "source": [ "# Then, get all observations in that place of a given species\n", "observations = client.observations.search(\n", " taxon_name='Danaus plexippus',\n", " photos=True,\n", " geo=True,\n", " geoprivacy='open',\n", " place_id=24,\n", ").all()\n", "\n", "print(len(observations))\n", "\n", "# Convert observations to DataFrame\n", "df = pd.DataFrame(\n", " [\n", " {\n", " 'observed_on': obs.observed_on,\n", " 'observed_month': obs.observed_on.month if obs.observed_on else None,\n", " }\n", " for obs in observations\n", " ]\n", ")\n", "\n", "print(df.head())" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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V95WPShz5szR50P1oKhJfyq0EFBC78svv5SlS5fKF198Iddff73s3btXTyJXEwCfeuop/s2aQP0r1KvRB65abyw1YfbRRx/VP8/ef//9kH1fAoqNqJUheXl5+krRPuovRDVTW02Ccjgc+q9GhM5ll10m1113XZ37rr32WvnnP//Jx2CAF198Uf8VqH7YKmqFgvrrXK14I6AYS02I9fWkqP83PupnWv1eFYQ2nIwfP14PwW3YsCFkvScKc1BsZMSIEZKUlKT/KvRt6q/3xx9/XO8TTkJPreBJT0+vc5+a/8BFMY2hViZcdFHdH3vq/wXLjI2nln6rkBIbG+u/r6amRuLi4mTo0KGGti3cw8nBgwdl3bp1ulRCKNGDYiNdunTRV4WuTa1fV/+o6t+P0Pjtb3+rf7iqIR71H13NQVHLv9WG0FM1H9Sck379+ukhnj179uhlrU8//TQfRwiUl5fLoUOH/LfVX+Xqj6fu3bvrz0QNt6n/KwMGDNCb2le1g9S8B4T281DDnj/72c/0nMaVK1fq3njfPCH1eLt27SToQrJWCIZhmbHxVqxY4R04cKC3ffv23muuucb74YcfGt2ksFVaWqqX3ffr18/boUMH71VXXeX93e9+53U4HEY3LSxs3LhRL1Otvz311FP+pcavvPKKXm6s/r/85Cc/8SYlJRnd7LD8PDIzMxt8TG3qeaHA1YwBAIDpMAcFAACYDgEFAACYDgEFAACYDgEFAACYDgEFAACYDgEFAACYDgEFAACYDgEFAACYDgEFsJlNmzbpq7+ePn1a7MDK7+fo0aO67ap8OICWIaAAQAD84he/kPvvv59zCQQIAQVAq6mrzgJAIBFQAAtyOBzy3HPPyaWXXiodOnSQO+64QxISEuocs23bNrnxxhv140OGDJGkpCT/Y8eOHdNX9u3WrZu+4rW6su/q1av9jx84cEB++tOfysUXXyy9e/eWJ598UgoKCvyPDx8+XH7zm9/ICy+8ID179pRRo0bJY489Jo8++ug5l2tXj3/yySf6ttfrlfnz58tVV10lHTt21O373//93zrPUe34wQ9+oB+/88479TBJcy1ZskQuueQSffXVH/7wh/pKuOqKrBUVFfLpp5/K9773Pf2ep0yZoq/O6lNcXCw///nP9WPqOXfffbe+xHz91127dq1ce+21+rzcddddkpOTox+fPXu2fv1///vfekhHbWpoyufIkSP6vajXVu/522+/bfZ7AsJWSC5JCCCgnnvuOW90dLR39erV3pSUFH310W7dunkLCwv9Vyi99tprvTExMd79+/d7x44d6/3e977nramp0c+/5557vKNGjdKPHT58WF9xOS4uTj+WnZ3t7dmzp3fWrFne1NRU7+7du/Wxd955Z52rZF988cXeF1980ZuWlqaPU6/RsWNHb1lZmf84dZ+6anBJSYm+/fLLL+srOq9Zs0Z/308++URftXbTpk368ePHj+vb6orD6nWXLl3q7d27t34/xcXFTZ4X9Xpt27bV7VXtVu+pR48e3tGjR3vHjx+vz5VqU7t27bzLli3zP2/cuHH6fG3evNm7d+9e75gxY7xXX321/3z5XnfkyJHehIQEb2Jioj5+woQJ+nH1ntXr33XXXd6cnBy9qSsk+64Iq97zypUrvenp6d6f/exn3iuvvNLrdDoD9K8BsCcCCmAx5eXl+pfl3/72N/996hepCizz58/3B5Tav4BVcFHh4csvv9S3Bw0a5J09e3aDr/+HP/xB/0KvLSsrS7+m+gXrCyg33XRTnWNUG1Sw+eyzz/z3PfbYY96HH37Y324VVuLj4+s8b+LEifo4RYUi9Yvf4/H4H585c2aLAoo69tChQ/77Jk2a5O3UqVOd4KQCiLpfycjI0M/Ztm2b//GCggJ9vv7xj380+rrvvfeeDk8+KiTed999ddrjCyh//etf/fepkKTuU6EOQOMY4gEs5vDhw3ro5Pbbb/ff17ZtW/mP//gPSU1N9d932223+fe7d++uhzx8j6vhoddee02/xiuvvCL79+/3H5uYmCgbN27Uwxi+7ZprrvF/b59bb721TrtUGx5++GH529/+pm+rYRU15PH444/7h42qq6v1cFDt1/7ss8/8r6va9+Mf/1gPkTT0PppDDaN8//vf999WQ1RqaEd9r9r35eXl+b9nZGSkHgbz6dGjR53z1dDrXnbZZf7XaMoNN9xQ53lKc58LhKtIoxsAoGVUz6dS+5e47/7699Xne/yXv/yljBkzRlatWiUxMTEyd+5ceeutt/TcDI/Ho+enzJs375zn+365KmruSn0qjAwbNkz/8o2NjdXzX9R8DkW9rqK+5+WXX17nee3bt6/z3lpDBaX677mh+3ztaex71j+fDb1Gc9tb+7m+1/R9fwANowcFsJirr75a2rVrJ1u3bvXfp3pUdu3apSdw+mzfvr3OJNCMjAx/T4jSt29feeaZZ+Srr76SadOmyUcffaTvv+WWWyQlJUX3OqjvVXtrKJTUNnToUP26X375pe5JUT0qqq3Kddddp4PI8ePHz3ld9RzfMbXbXf99BIP6ni6XS3bs2OG/r7CwUJ+v2uezKep91p54C6B1CCiAxaiQ8Otf/1pefPFFWbNmjR46+dWvfiWVlZUyceJE/3GvvvqqrF+/XpKTk3WNDrWaxlenY+rUqXpFSmZmpuzevVs2bNjg/2X87LPPSlFRkV6Vs3PnTr0CRfWyPP30003+Ala9AxMmTJAPPvhA96A88cQT/se6dOki06dPl9/+9rd6xYsa1tmzZ4+89957+raiApO6X60OSk9Ply+++EKvoAmmAQMGyH333afPoQp9+/bt0+1WvTzq/uZSgU4Nlal2qxVPKjQCuHAEFMCC3njjDXnooYf08l/V43Ho0CEdONQy2drHPP/88zJ48GC9HPbrr7/292aooKGCiAolarmsmm/x/vvv68eio6P1EmV1jBoGGjhwoH6dqKgoueiipn9kqGEeFZrUL/ja82SU//7v/5b/+q//0kNK6nur11+xYoX0799fP96vXz/55z//qe9Ty3FV0JkzZ44Em1oGrc7T2LFj9ZwXNXSjljvXH9Y5HxVw1HlUc3N69eqlzyGACxehZsq24vkAAAABRw8KAAAwHQIKAMtQK4JqL1GuvYViKAhA6DDEA8AyTp48KVVVVQ0+pmq9qA2APRBQAACA6TDEAwAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAAxGz+fzAQpriUWdsOAAAAAElFTkSuQmCC",
      "text/plain": [
       "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 64\u001b[0m\u001b[1;36m0x480\u001b[0m\u001b[39m with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot observation counts by month\n",
    "df['observed_month'].groupby(df['observed_month']).count().plot(kind='area')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}